package com.zbkj.service.service.monitor;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.common.model.monitor.ZfbMonitorDeviceStatus;

import java.util.Map;

/**
 * 监控设备状态服务接口
 * +----------------------------------------------------------------------
 * @author xiaolic
 * +----------------------------------------------------------------------
 */
public interface ZfbMonitorDeviceStatusService extends IService<ZfbMonitorDeviceStatus> {
    
    /**
     * 根据license查询设备过期时间和套餐类型
     * @param license 设备license
     * @return Map包含过期时间(expireTime)和套餐类型(mealType)，如果没有则相应的值为null
     */
    Map<String, Object> getExpireTimeByLicense(String license);
    
    /**
     * 更新设备状态
     * @param license 设备license
     * @param status 设备状态（0=关闭 1=开启）
     * @return 更新结果
     */
    boolean updateDeviceStatus(String license, Integer status);
    
    /**
     * 根据license获取设备状态信息
     * @param license 设备license
     * @return 设备状态对象
     */
    ZfbMonitorDeviceStatus getByLicense(String license);
    
    /**
     * 根据license和过期时间信息处理设备状态
     * @param license 设备license
     * @param expireInfo 包含过期时间和套餐类型的Map
     * @param orderNo 最近一次的订单号
     * @return 处理结果
     */
    boolean processDeviceStatus(String license, Map<String, Object> expireInfo, String orderNo);

    /**
     * 根据商家id，更新设备状态
     * @param merId
     */
    void updateDeviceStatusByMerId(Integer merId);
}
